/*
	Copyright (c) 2009-2011, Stefan Webb.

	This file is part of SimpleML. Please read the file "license.txt", 
	which contains the conditions under which this software is distributed.
*/

/*!
	\file threads.h
	\author Stefan Webb
	\brief Definition of Threads class
*/

#ifndef THREADS_H
#define THREADS_H

/*! \brief A singleton class abstracting cross platform access to threads. May be extended in future. */
class Threads
{
public:
	/*! \brief Default constructor. */
	Threads();

	/*! \brief Default destructor. */
	~Threads();

	// NOTE: Changed mind. Instead of threads object creating critical sections, you create them directly.
	// It's better to have them predeclared as class members rather than calling new all the time.
	/*! \brief Allocate system resources for a critical section. Caller is responsible for freeing resources.
		\return A critical section object. */
	//CriticalSection createCriticalSection();

	/*! \brief Free system resources for a critical section. */
	//void destroyCriticalSection(CriticalSection cs);
};

/*! \brief The global threads object. */
// Note: For now, no need for object.
//extern Threads threads;	//wcout;

#endif